package com.itheima.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author: 卢传平
 * @Date: 2025/9/13 - 09 - 13 - 9:39
 * @Description: com.itheima.config
 * @version: 1.0
 * @Data
 * @NoArgsConstructor
 * @AllArgsConstructor
 */
@Configuration
public class MybatisConfig {

    //MybatisPlusInterceptor 这个拦截拦截mybatis框架执行的sql语句进行分页原理实现
    //    第一条sql: 查询总条数 select count(*) from 表 where 条件
    //    第二条sql: 查询总条数 select 字段列表 from 表 where 条件 limit start,length
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        // 初始化MyBatisPlus核心插件
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        // 添加分页插件
        // PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(); 这样也可以回自动判断数据库类型进行分页实现
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        paginationInnerInterceptor.setMaxLimit(1000L);//设置限制每页不能超过1000
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);

        return mybatisPlusInterceptor;
    }
}